/**
 * 自媒体账号管理相关类型定义
 *
 * 这个模块定义了自媒体账号管理系统的类型，包括：
 * - 自媒体账号基本信息
 * - 账号记忆系统（品牌信息、写作风格等）
 * - 账号偏好设置
 * - 内容生成配置
 */

// ================================
// 社交媒体平台类型
// ================================

export type SocialPlatform =
  | 'weibo' // 微博
  | 'wechat' // 微信公众号
  | 'douyin' // 抖音
  | 'xiaohongshu' // 小红书
  | 'zhihu' // 知乎
  | 'bilibili' // B站
  | 'toutiao' // 今日头条
  | 'baidu' // 百家号
  | 'other'; // 其他平台

export type ContentType =
  | 'article' // 长文章
  | 'short_text' // 短文案
  | 'video_script' // 视频脚本
  | 'social_post' // 社交媒体帖子
  | 'product_desc' // 产品描述
  | 'marketing'; // 营销文案

export type WritingTone =
  | 'professional' // 专业
  | 'casual' // 轻松
  | 'friendly' // 友好
  | 'humorous' // 幽默
  | 'authoritative' // 权威
  | 'emotional' // 感性
  | 'minimalist'; // 简约

// ================================
// 自媒体账号核心类型
// ================================

/**
 * 自媒体账号基本信息
 */
export interface SocialAccount {
  id: string;
  name: string; // 账号名称
  platform: SocialPlatform; // 所属平台
  description?: string; // 账号描述
  avatar_url?: string; // 头像URL
  is_active: boolean; // 是否激活
  created_at: string;
  updated_at: string;
}

/**
 * 账号记忆系统 - 存储账号的品牌信息和风格特点
 */
export interface AccountMemory {
  id: string;
  account_id: string;

  // 品牌基础信息
  brand_info: {
    brand_name?: string; // 品牌名称
    industry?: string; // 所属行业
    target_audience?: string; // 目标受众
    brand_values?: string[]; // 品牌价值观
    unique_selling_points?: string[]; // 独特卖点
  };

  // 写作风格特征
  writing_style: {
    tone: WritingTone; // 语调风格
    personality_traits?: string[]; // 个性特征
    vocabulary_preferences?: string[]; // 用词偏好
    sentence_structure?: 'simple' | 'complex' | 'mixed'; // 句式偏好
    emoji_usage?: 'frequent' | 'moderate' | 'minimal'; // 表情使用频率
  };

  // 内容策略
  content_strategy: {
    primary_topics?: string[]; // 主要话题
    content_pillars?: string[]; // 内容支柱
    hashtag_strategy?: string[]; // 标签策略
    posting_frequency?: string; // 发布频率
  };

  // 禁忌和注意事项
  guidelines: {
    forbidden_words?: string[]; // 禁用词汇
    sensitive_topics?: string[]; // 敏感话题
    compliance_rules?: string[]; // 合规要求
    brand_guidelines?: string; // 品牌指导原则
  };

  created_at: string;
  updated_at: string;
}

/**
 * 账号内容生成偏好设置
 */
export interface AccountPreferences {
  id: string;
  account_id: string;

  // 默认生成设置
  default_settings: {
    content_length: 'short' | 'medium' | 'long';
    language: string; // 默认语言
    ai_provider_id?: number; // 默认AI服务商
    model?: string; // 默认模型
  };

  // 平台特定设置
  platform_settings: {
    max_length?: number; // 最大字符数限制
    supports_hashtags?: boolean; // 是否支持标签
    supports_mentions?: boolean; // 是否支持@提及
    supports_images?: boolean; // 是否支持图片
    supports_videos?: boolean; // 是否支持视频
  };

  // 内容优化偏好
  optimization_preferences: {
    seo_optimization?: boolean; // SEO优化
    engagement_optimization?: boolean; // 互动优化
    viral_potential?: boolean; // 病毒传播潜力
    sentiment_target?: 'positive' | 'neutral' | 'negative';
  };

  created_at: string;
  updated_at: string;
}

/**
 * 账号内容历史和学习数据
 */
export interface AccountContentHistory {
  id: string;
  account_id: string;
  content_id: string; // 关联的内容ID
  content_type: ContentType;
  content_preview: string; // 内容预览
  performance_metrics?: {
    views?: number;
    likes?: number;
    shares?: number;
    comments?: number;
    engagement_rate?: number;
  };
  user_feedback?: 'positive' | 'negative' | 'neutral';
  created_at: string;
}

// ================================
// 请求和响应类型
// ================================

/**
 * 创建自媒体账号请求
 */
export interface CreateSocialAccountRequest {
  name: string;
  platform: SocialPlatform;
  description?: string;
  avatar_url?: string;
}

/**
 * 更新自媒体账号请求
 */
export interface UpdateSocialAccountRequest {
  name?: string;
  description?: string;
  avatar_url?: string;
  is_active?: boolean;
}

/**
 * 更新账号记忆请求
 */
export interface UpdateAccountMemoryRequest {
  brand_info?: Partial<AccountMemory['brand_info']>;
  writing_style?: Partial<AccountMemory['writing_style']>;
  content_strategy?: Partial<AccountMemory['content_strategy']>;
  guidelines?: Partial<AccountMemory['guidelines']>;
}

/**
 * 更新账号偏好请求
 */
export interface UpdateAccountPreferencesRequest {
  default_settings?: Partial<AccountPreferences['default_settings']>;
  platform_settings?: Partial<AccountPreferences['platform_settings']>;
  optimization_preferences?: Partial<AccountPreferences['optimization_preferences']>;
}

/**
 * 账号完整信息（包含记忆和偏好）
 */
export interface SocialAccountWithDetails extends SocialAccount {
  memory?: AccountMemory;
  preferences?: AccountPreferences;
  content_count?: number; // 生成内容总数
  last_content_at?: string; // 最后生成内容时间
}

/**
 * 增强版文案生成请求（支持账号上下文）
 */
export interface EnhancedTextGenerationRequest {
  account_id?: string; // 指定自媒体账号ID
  type: ContentType;
  topic: string;
  audience?: string;
  tone?: WritingTone;
  length?: 'short' | 'medium' | 'long';
  language?: string;
  requirements?: string;
  provider_id?: number;
  model?: string;

  // 账号上下文增强
  use_account_memory?: boolean; // 是否使用账号记忆
  apply_brand_voice?: boolean; // 是否应用品牌语调
  follow_guidelines?: boolean; // 是否遵循品牌指导原则
}

// ================================
// 统计和分析类型
// ================================

/**
 * 账号统计数据
 */
export interface SocialAccountStats {
  account_id: string;
  total_content: number; // 总生成内容数
  content_by_type: Record<ContentType, number>;
  avg_content_length: number; // 平均内容长度
  most_used_topics: string[]; // 最常用话题
  performance_trend?: 'up' | 'down' | 'stable';
}

/**
 * 平台使用统计
 */
export interface PlatformUsageStats {
  platform: SocialPlatform;
  account_count: number;
  content_count: number;
  active_accounts: number;
}
